/* 
 * File:   svg_path_curve.h
 * Author: Satan
 *
 * Created on September 9, 2012, 9:07 PM
 */

#ifndef INSTRUCTCURVE_H
#define	INSTRUCTCURVE_H

#include "svgloader/svg_path.h"

// Инструкция "Кубическая кривая Безье"
class svg_path_instruction_curve : public svg_path_instruction
{
    public:
        svg_path_instruction_curve(float, float, float, float, float, float, float, float);
        svg_path_instruction_curve(const svg_path_instruction_curve& orig);
        virtual ~svg_path_instruction_curve();
        
        // Возврат точек создаваемых кривой. Количество точек задается переменной, по умолчанию = 30
        void getPoints(std::vector<hfgl_point>*, int);

    private:
        
        float m_ax;
        float m_ay;
        float m_p1x;
        float m_p1y;
        float m_p2x;
        float m_p2y;
        float m_bx;
        float m_by;
        
        // Рассчет точки
        hfgl_point curves(float t);
};

#endif	/* INSTRUCTCURVE_H */

